package io.choerodon.agile.app.service;

import io.choerodon.agile.infra.dto.VersionIssueRelDTO;


/**
 * @author dinghuang123@gmail.com
 * @since 2018-05-15 16:21:18
 */
public interface VersionIssueRelService {

    /**
     * 添加一个
     *
     * @param versionIssueRelDTO versionIssueRelDTO
     * @return VersionIssueRelDTO
     */
    VersionIssueRelDTO create(VersionIssueRelDTO versionIssueRelDTO);

    /**
     * 根据issueId删除版本
     *
     * @param issueId issueId
     * @return int
     */
    int deleteByIssueId(Long issueId);

    /**
     * 通过查询条件批量删除issue版本关联（不包含已归档的版本）
     *
     * @param versionIssueRelDTO versionIssueRelDTO
     * @return int
     */
    int batchDeleteByIssueIdAndTypeArchivedExceptInfluence(VersionIssueRelDTO versionIssueRelDTO);

    /**
     * 根据id删除
     *
     * @param projectId projectId
     * @param versionId versionId
     * @return int
     */
    int deleteByVersionId(Long projectId, Long versionId);

    Boolean deleteIncompleteIssueByVersionId(Long projectId, Long versionId);

    /**
     * 根据查询条件删除版本关联
     * @param versionIssueRelDTO versionIssueRelDTO
     * @return int
     */
    int delete(VersionIssueRelDTO versionIssueRelDTO);
}